package com.gdawj.controleur;

import com.gdawj.ejb.AideEJB;
import com.gdawj.javabeans.Aide;
import java.util.ArrayList;
import java.util.List;
import java.util.ResourceBundle;
import javax.annotation.Resource;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.validation.Validator;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;


@ManagedBean
public class AideBean {
    // aide en BackingBean
    private Aide aide=new Aide();
    private List<Aide> listeAides=new ArrayList<Aide>();
    private int idAide=0;
    private ResourceBundle rb=ResourceBundle.getBundle("multilingues.messages",FacesContext.getCurrentInstance().getApplication().getDefaultLocale());
    private FacesMessage message=null;
    // persistance
    @EJB
    private AideEJB aideEJB;
    // validateur
    @Resource
    Validator validator;
    //log4j
    private final static Logger logger=Logger.getLogger("controleur");


    // valider l'aide
    public String valider()
    {
        validator.validate(aide);
        if(idAide>0)
        {
            aideEJB.modifier(aide);
            message=new FacesMessage(FacesMessage.SEVERITY_INFO,rb.getString("succesModifierAide"),null);
        }
        else
        {
            aideEJB.ajouter(aide);
            message=new FacesMessage(FacesMessage.SEVERITY_INFO,rb.getString("succesAjouterAide"),null);
        }
        //ajouter le message JSF
        FacesContext.getCurrentInstance().addMessage(null, message);
        return "aide";
    }

    // supprimer l'aide
    public void supprimer()
    {
        if(this.idAide>0)
        {
            aideEJB.supprimer(this.idAide);
            message=new FacesMessage(FacesMessage.SEVERITY_INFO,rb.getString("succesSupprimerAide"),null);
            //ajouter le message JSF
            FacesContext.getCurrentInstance().addMessage(null, message);
        }
    }

    public void setIdAide(int idAide)
    {
        this.idAide = idAide;
        // on a reçu un idAide pour une edition ou suppression, on charge l'aide
        if(idAide>0){
          aide=aideEJB.getAide(idAide);
        }
    }

    public List<Aide> getListeAides()
    {
        logger.log(Level.FATAL,"Erreur dans la classe AideBean.java fonction getListeAides");
        logger.log(Level.DEBUG,"Erreur dans la classe AideBean.java fonction getListeAides");
   
        listeAides=aideEJB.getListe();
        return listeAides;
    }

    public void setListeAides(List<Aide> listeAides) {
        this.listeAides = listeAides;
    }

    public Aide getAide()
    {
        return aide;
    }
  
    public void setAide(Aide aide) {
        this.aide = aide;
    }
 
    public int getIdAide() {
        return idAide;
    }

    // retourner l'aide dynamique pour la page
    public String getAidePageCourante(String urlCourante) {
        return aideEJB.getAideUrlCourante(urlCourante);
    }

}

